package eu.flexblog.core.interfaces
{
	import eu.flexblog.core.view.components.ContentShell;
	
	/**
	 * Flexblog module interface
	 * @author Mike Bevz <myb@mikebevz.com>
	 */	
	public interface IFBModule
	{
		
		/**
		 * Get the Module's key. 
		 * <P> 
		 * This will be a unique string. Generally created
		 * by adding a unique URI for the widget to the 
		 * id property of the IFBModule instance.</P>
		 */
		function getModuleKey():String;
		
		/**
		 * Set the Module's reference to the ModuleShell.
		 * <P>
		 * The Module communicates with the rest of the
		 * application via the API exposed by the 
		 * ModuleShell.  
		 */
		function setModuleShell(shell:IFBModuleShell):void;
		
		function getMenu():Array;
		
		
	}
}